GtkPlacesSidebar: Don't crash on dnd
authorMatthias Clasen <mclasen@redhat.com>
Sat, 25 Oct 2014 19:55:54 +0000 (15:55 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 25 Oct 2014 20:00:00 +0000 (16:00 -0400)
gtk_get_current_event() can return NULL. Don't crash if it does.

https://bugzilla.gnome.org/show_bug.cgi?id=739150

gtk/gtkplacessidebar.c

index c6d53f7358e63f86575428d84247198cc4b76620..cdc5ce1f8fc461607b0c4b82adbcf48083b88fff 100644 (file)
@@ -1420,11 +1420,13 @@ static gboolean
 clicked_eject_button (GtkPlacesSidebar  *sidebar,
                       GtkTreePath      **path)
 {
-  GdkEvent *event = gtk_get_current_event ();
-  GdkEventButton *button_event = (GdkEventButton *) event;
+  GdkEvent *event;
 
-  if ((event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE) &&
-       over_eject_button (sidebar, button_event->x, button_event->y, path))
+  event = gtk_get_current_event ();
+
+  if (event &&
+      (event->type == GDK_BUTTON_PRESS || event->type == GDK_BUTTON_RELEASE) &&
+       over_eject_button (sidebar, ((GdkEventButton *)event)->x, ((GdkEventButton *)event)->y, path))
     return TRUE;
 
   return FALSE;